<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //一。周边方法中的实例方法
        // 1.catch方法，实例方法,
        // 特点：1)catch的返还值和onRejected返还值一样， onRejected方法的别名，查看效果p2,所以catch也是异步，也是微任务。
        //2)catch会捕捉promise对象链式上的错误。一般then里面只写onResolve不写onRejected,
        //通过catch在后面捕捉整个链式上的错误。 遇到错误便不再往下执行后面的then
        let p = new Promise((resolve,rejected)=>{
            resolve();
        })

        // p.then(res=>{
        //     console.log("成功调用");
        // }).catch(err=>{
        //     console.log("失败调用");
        // })

        //链式调用
        // let p2 = p.then(res=>{
            
        //     return new Promise((resolve,rejected)=>{
        //         console.log("成功调用111");
        //         resolve()
        //     })
        // }).then(res=>{
        //     return new Promise((resolve,rejected)=>{
        //         // console.log("成功调用222");
        //         // resolve()
        //         rejected("222失败")
        //     })
        // }).then(res=>{
        //     console.log("then333");
        //     return new Promise((resolve,rejected)=>{
        //         // rejected("333调用失败")
        //         console.log("成功调用333");
        //         resolve()
        //     })
        // }).catch(err=>{
        //     console.log(err,'捕捉链式错误');
        // })
        // console.log(p2);//查看catch的返还值


        //2.finally方法：实例方法，在promise执行完后调用
        //执行完：不管是失败还是成功都算执行完，只要promise执行完了就会调用finally
        let p3 = new Promise((resolve,rejected)=>{
            setTimeout(() => {
            // resolve('finally-resolve')
            rejected('finally-rejected')
            }, 1000);
        })

        p3.then(res=>{
            console.log(res,"执行成功了");
        }).catch(err=>{
            console.log(err,'执行失败');
        }).finally(()=>{
            console.log('finally调用了');
        })

      console.log(p3,'p3');

    </script>
</body>
</html>